//
//  NSString+RCExpand.h
//  NSDate
//
//  Created by 杨晓辉 on 2017/7/20.
//  Copyright © 2017年 杨晓辉. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>


//struct CGPoint {
//    CGFloat x;
//    CGFloat y;
//};
//typedef struct CGPoint CGPoint;

//struct RCDateFormatter{
//
//    int dateWithSlash;
//};



typedef struct RCDateFormatter RCDateFormatter;


@interface NSString (RCExpand)

#pragma mark ---正则表达式验证--

/**
 验证邮箱是否正确

 @return 返回验证的结果
 */

- (BOOL)isCorrentEmail;

/**
 验证手机号是否正确
 @return 返回验证的结果
 */
- (BOOL)isCorrentMobile;

/**
 验证车牌号是否正确

 @return 返回验证的结果
 */

- (BOOL)isCorrentCarNo;

/**
 验证用户昵称是否正确(只能含有汉字英文和数字)
 
 @return 返回验证的结果
 */
- (BOOL)isCorrentNickname;

/**
 验证密码是否有效（以字母开头,只能包含“字母”,“数字”,“下划线”,长度6~18）

 @return 返回验证的结果
 */
- (BOOL)isCorrentPassword;

/**
 验证身份证号是否正确

 @return 返回验证的结果
 */

- (BOOL)isCorrentIdentityCard;

/**
 验证汉字

 @return 返回验证结果
 */
- (BOOL)isCorrentChinese;

/**
 验证ip地址

 @return 返回验证结果
 */
- (BOOL)isCorrentIPAddress;

/**
 判断字符串中是否包含中文

 @return 返回结果（YES：包含）
 */
- (BOOL)isContainChinese;

#pragma mark ---文件路径--


#pragma mark ---字符串截取--

/**
 字符串反转
 @return 反转之后的字符串
 */
- (NSString*)reverseWords;
/**
 字符串截取从某个字符到另个字符之间的字符串

 @param startString 开始截取的字符串
 @param endString 结束的字符串
 @return 返回截取结果
 */
- (NSString*)substringFrom:(NSString *)startString to:(NSString *)endString;

/**
 过滤字符串

 @param characterString 过滤字符
 @return 返回过滤的结果
 */
- (NSString*)filterCharacter:(NSString*)characterString;

/**
 除去字符串开头和末尾的空格
 
 @return 除去空格后的字符串
 */
- (NSString *)trim;

/**
 清除HTML标签

 @return 返回去除标签的字符串
 */
- (NSString *)stringByStrippingHTML;

/**
 获得汉字的拼音
 @return 得到汉字拼音
 */
- (NSString *)ChineseCharTranslationToPinyin;

/**
 字节数量
（汉字字符 2字节
 英文字符 1字节
 中文标点 2字节
 英文标点 1字节）

 @return 返回字节数
 */
- (int)bytesCount;
/**
 阿拉伯数字转成中文
 @return 返回的中文数字
 */
- (NSString *)arebicTranslationToChinese;

#pragma mark ---字符串尺寸--

/**
 获取字符串的高度
 @param font 文字的字号大小
 @param maxWidth 显示宽度
 @return 返回得到的高度
 */
- (CGFloat)stringGetHeightWithfont:(CGFloat)font maxWidth:(CGFloat)maxWidth;

/**
 获取字符串的宽度

 @param font 文字的字号大小
 @return 返回得到的高度
 */

- (CGFloat)stringGetWidthWithFont:(CGFloat)font;

/**
 将数组和字典转换成JOSN字符串

 @param obj 需要转换的对象
 @return 返回json字符串
 */
+  (NSString*)jsonStingWithData:(id)obj;


#pragma mark ---加密--

/**
 MD5加密

 @return 返回加密结果的字符串
 */
-(NSString*) md5;
/**
 哈希算法

 @return 返回结果
 */
- (NSString*) sha1;

/**
 哈希算法（256）

 @return 返回结果
 */
- (NSString *) sha256;

/**
 base64加密

 @return 返回加密后的字符串
 */
- (NSString *)encodeBase64String;

/**
 base64解密

 @return 返回解密结果
 */
- (NSString *)decodeBase64String;



@end
